#ifndef CHANGEPASSWORDDIALOG_H
#define CHANGEPASSWORDDIALOG_H

#include <QDialog>
#include <QMessageBox>
#include "databasemanager.h"

QT_BEGIN_NAMESPACE
namespace Ui {
class ChangePasswordDialog;
}
QT_END_NAMESPACE

class ChangePasswordDialog : public QDialog
{
    Q_OBJECT

public:
    explicit ChangePasswordDialog(const UserInfo& userInfo, QWidget *parent = nullptr);
    ~ChangePasswordDialog();

signals:
    // 密码修改成功信号
    void passwordChangedSuccessfully();

private slots:
    // 确认修改密码按钮点击事件
    void onConfirmClicked();
    
    // 取消按钮点击事件
    void onCancelClicked();
    
    // 密码输入框文本变化事件
    void onPasswordTextChanged();

private:
    // 验证当前密码是否正确
    bool validateCurrentPassword(const QString& password);
    
    // 验证新密码是否符合要求
    bool validateNewPassword(const QString& password);
    
    // 更新密码到数据库
    bool updatePassword(const QString& newPassword);
    
    // 更新界面状态
    void updateUI();
    
    // UI对象
    Ui::ChangePasswordDialog *ui;
    
    // 当前用户信息
    UserInfo m_userInfo;
};

#endif // CHANGEPASSWORDDIALOG_H